package com.wechat.pay.java.service.mchtransfer.enums;

import java.util.HashMap;
import java.util.Map;

public enum TransferSceneEnum {
    // 需在发起转账接口通过user_recv_perception【用户收款感知】参数传入对应的收款感知，当前仅支持传入【现金奖励】或【活动奖励】，不传则默认展示【活动奖励】
    XJYX("1000", "活动奖励", "现金营销"),
    // 需在发起转账接口通过user_recv_perception【用户收款感知】参数传入对应的收款感知，当前仅支持传入【退款】或【商家赔付】，不传则默认展示【退款】
    QYPF("1011", "退款", "企业赔付"),
    // 需在发起转账接口通过user_recv_perception【用户收款感知】参数传入对应的收款感知，当前仅支持传入【劳务报酬】、【报销款】、【企业补贴】、【开工利是】，不传则默认展示【劳务报酬】。
    YJBC("1005", "劳务报酬", "佣金报酬"),
    // 需在发起转账接口通过user_recv_perception【用户收款感知】参数传入对应的收款感知，当前仅支持传入【货款】；若未传入该参数，默认展示为【货款】。
    CGHK("1009", "货款", "采购货款"),
    // 需在发起转账接口通过user_recv_perception【用户收款感知】参数传入对应的收款感知，当前仅支持传入【二手回收货款】；若未传入该参数，默认展示为【二手回收货款】
    ESHS("1010", "二手回收货款", "二手回收"),
    // 需在发起转账接口通过user_recv_perception【用户收款感知】参数传入对应的收款感知，当前仅支持传入【公益补助金】；若未传入该参数，默认展示为【公益补助金】
    GYBZ("1013", "公益补助金", "公益补助"),
    // 需在发起转账接口通过user_recv_perception【用户收款感知】参数传入对应的收款感知，当前仅支持传入【行政补贴】或【行政奖励】，不传则默认展示【行政补贴】
    XZBT("1002", "行政补贴", "行政补贴"),
    // 需在发起转账接口通过user_recv_perception【用户收款感知】参数传入对应的收款感知，当前仅支持传入【保险理赔款】；若未传入该参数，默认展示为【保险理赔款】
    BXLP("1004", "行政补贴", "保险理赔");

    private String TRANSFER_SCENE_ID;   // 转账场景ID
    private String USER_RECV_PERCEPTION;    // 用户收款感知
    private String NAME;    //
    private Map<TransferSceneReportInfoTypeEnum, String> INFO_TYPE;

    TransferSceneEnum(String TRANSFER_SCENE_ID, String USER_RECV_PERCEPTION, String NAME) {
        this.TRANSFER_SCENE_ID = TRANSFER_SCENE_ID;
        this.USER_RECV_PERCEPTION = USER_RECV_PERCEPTION;
        this.NAME = NAME;
        this.INFO_TYPE = new HashMap<>();
    }

    public String getTRANSFER_SCENE_ID() {
        return TRANSFER_SCENE_ID;
    }

    public void setTRANSFER_SCENE_ID(String TRANSFER_SCENE_ID) {
        this.TRANSFER_SCENE_ID = TRANSFER_SCENE_ID;
    }

    public String getUSER_RECV_PERCEPTION() {
        return USER_RECV_PERCEPTION;
    }

    public void setUSER_RECV_PERCEPTION(String USER_RECV_PERCEPTION) {
        this.USER_RECV_PERCEPTION = USER_RECV_PERCEPTION;
    }

    public String getNAME() {
        return NAME;
    }

    public void setNAME(String NAME) {
        this.NAME = NAME;
    }

    public Map<TransferSceneReportInfoTypeEnum, String> getINFO_TYPE() {
        return INFO_TYPE;
    }

    public void setINFO_TYPE(Map<TransferSceneReportInfoTypeEnum, String> INFO_TYPE) {
        this.INFO_TYPE = INFO_TYPE;
    }
}
